 package com.gmrz.uaf.protocol.v1.schema;
 
 import com.google.gson.annotations.Expose;
 import com.google.gson.annotations.SerializedName;
 import com.google.inject.Inject;
 import com.google.inject.name.Named;
 import java.util.ArrayList;
 import java.util.List;
 
 public class AuthenticationRequest {
 
   @SerializedName("header")
   @Expose
   private OperationHeader operationHeader;
 
   @SerializedName("challenge")
   @Expose
   private ServerChallenge serverChallenge;
 
   @Expose
   @SerializedName("transaction")
   private List<Transaction> transactions;
 
   @Expose
   private Policy policy;
 
   public OperationHeader getOperationHeader() {
     return this.operationHeader;
   }
 
   @Inject
   private void setOperationHeader(@Named("authentication") OperationHeader operationHeader) {
     this.operationHeader = operationHeader;
   }
 
   public AuthenticationRequest withOperationHeader(OperationHeader operationHeader) {
     this.operationHeader = operationHeader;
     return this;
   }
 
   public ServerChallenge getServerChallenge() {
     return this.serverChallenge;
   }
 
   public void setServerChallenge(ServerChallenge serverChallenge) {
     this.serverChallenge = serverChallenge;
   }
 
   public AuthenticationRequest withServerChallenge(ServerChallenge serverChallenge) {
     this.serverChallenge = serverChallenge;
     return this;
   }
 
   public List<Transaction> getTransactions() {
     return this.transactions;
   }
 
   public void setTransactions(List<Transaction> transactions) {
     this.transactions = transactions;
   }
 
   public AuthenticationRequest addTransaction(Transaction transaction) {
     if (this.transactions == null) this.transactions = new ArrayList();
     this.transactions.add(transaction);
     return this;
   }
 
   public Policy getPolicy() {
     return this.policy;
   }
 
   public void setPolicy(Policy policy) {
     this.policy = policy;
   }
 
   public AuthenticationRequest withPolicy(Policy policy) {
     this.policy = policy;
     return this;
   }
 }
